Oggetto: compito
Simbolo:
L'operazione viene configurata nell'oggetto. È possibile configurare la priorità, il tipo e il comportamento temporale e un watchdog. Puoi anche aggiungere PROGRAM
chiamate.
L'oggetto si trova nell'albero dei dispositivi sotto il Configurazione dell'attività.
Scheda: Configurazione
Oggetto: Compito
Priorità | Valori possibili: 0..31, dove 0 è la priorità più alta |
Gruppo di attività | Assegnato gruppi di attività che possono essere assegnati a specifici core del processore in multicore Esempio: Compiti IEC Nota: il gruppo di attività viene visualizzato tra parentesi dopo l'attività nella struttura dei dispositivi. |
Importante
Quando si utilizza un sistema di runtime in Linux, esistono dipendenze fisse tra gruppi di attività e priorità. Per ulteriori informazioni, vedere: Mappatura delle priorità delle attività su un sistema Linux
Tipo
Tipo: | L'elaborazione dell'attività viene eseguita ciclicamente. |
Campo di inserimento Intervallo | Necessario Intervallo di tempo dopo il quale l'attività viene riavviata (tempo di ciclo dell'attività)
Nota: le deviazioni dell'attività dal tempo di ciclo dell'attività desiderato vengono visualizzate in fase di esecuzione come jitter periodici sul Scheda: Monitoraggio scheda. |
Unità di tempo dell'intervallo | Se nel file viene specificato solo un numero e non una definizione di tempo Intervallo campo di immissione, quindi l'unità qui selezionata determina le dimensioni temporali. Esempio: SM Nota: un tempo di ciclo dell'attività in µs viene sempre visualizzato come numero. |
Tipo: | L'elaborazione dell'attività viene avviata in base all'evento sul fronte di salita della variabile evento. |
Campo di inserimento Evento | Variabile globale (tipo booleano) L'attività inizia non appena il valore della variabile passa da 0 a 1. |
Tipo: | L'elaborazione dell'attività viene avviata in base all'evento sul fronte di salita della variabile evento. |
Casella di riepilogo Evento | Elenco con eventi dipendenti dal sistema di destinazione (tipo booleano) Nota: il sistema di destinazione determina quali eventi sono supportati e offerti nella casella di riepilogo. Suggerimento: da non confondere con gli eventi di sistema. |
Intervallo | Definizione del tempo in Nota: disponibile solo quando l'evento richiede una definizione dell'ora |
Tipo: Ruota libera | L'elaborazione dell'operazione si riavvia automaticamente in un ciclo continuo all'avvio del programma e dopo la fine di un'esecuzione dopo un determinato tempo di attesa Importante: dopo aver completato un'esecuzione, viene atteso un certo periodo di tempo prima che l'attività venga nuovamente eseguita. La durata è una percentuale della durata dell'ultimo ciclo Nota: non si definisce un tempo di ciclo. |
Tipo: Stato | L'elaborazione dell'attività viene avviata in base allo stato delle variabili evento |
Campo di inserimento Evento | Variabile globale (tipo booleano) Quando la variabile ha lo stato Nota: la variabile viene in genere reimpostata nel task stesso. Contrariamente al task evento, nessun evento può essere perso in questo modo. Quando si verifica un evento, lo scheduler deve salvare un vecchio valore, e questo può cambiare più spesso di quanto venga controllato. Quindi, se una variabile evento cambia in |
Importante
Per i bus di campo, è necessaria una matrice a ciclo fisso per assicurare un determinato comportamento. Pertanto, non è necessario utilizzare a Ruota libera tipo per un'attività ciclabile in autobus.
Importante
Notare la seguente differenza tra i tipi di elaborazione Stato e Evento. Se l'evento dato cede TRUE
, quindi la condizione iniziale di un'attività di tipo Stato è soddisfatto. Al contrario, l'inizio di un'attività di tipo Evento richiede uno switch dell'evento da FALSE
a TRUE
. Se la frequenza di campionamento dell'utilità di pianificazione è troppo bassa, il fronte di salita dell'evento può passare inosservato.
Importante
Quando si imposta il tempo di ciclo dell'attività, è necessario identificare quale sistema bus è attualmente in uso. Ad esempio, il tempo di ciclo dell'attività in un sistema bus CAN deve corrispondere alla velocità di trasmissione attualmente impostata e al numero di frame utilizzati nel bus. Inoltre, i tempi impostati per heartbeat, node guarding e sync devono sempre essere un multiplo del tempo del ciclo dell'attività. In caso contrario, i frame CAN possono essere persi.
Per ulteriori informazioni, vedere: Scheda: Monitoraggio
Watchdog
Definisce il monitoraggio del tempo per un'attività. Se il sistema di destinazione supporta una configurazione watchdog avanzata, le seguenti impostazioni potrebbero essere predefinite nella descrizione del dispositivo.
Le impostazioni di watchdog predefinite dipendono dal dispositivo. | |
Attivare |
Se l'attività supera il tempo attualmente impostato dal watchdog, viene interrotta con uno stato di errore (eccezione). Vengono interrotte anche l'applicazione nel cui task si è verificato l'errore e le relative applicazioni secondarie. In questo modo, vengono interrotte anche tutte le attività delle applicazioni interessate. Quindi quella attualmente definita Sensibilità viene anche preso in considerazione. Se si attiva l'opzione Aggiorna gli I/O nel Impostazioni PLC del PLC, quindi CODESYS ripristina le uscite ai valori predefiniti definiti. . Possibili casi:
|
Tempo (per es. t#200ms) | Tempo di guardia Definisce (insieme a Sensibilità) il watchdog per un compito; descrizione come per Abilitare. A seconda del sistema di destinazione, l'intervallo di tempo di monitoraggio viene fornito come percentuale dell'intervallo di attività, se possibile. In questo caso, la casella di riepilogo dell'unità è disabilitata e viene visualizzata %. |
Sensibilità | Numero Definisce (insieme al watchdog) il watchdog per un task; descrizione come per Abilitare. |
Suggerimento
Utilizzo delle funzioni della libreria CmpIecTask.library
, è possibile disattivare un watchdog per cicli PLC specifici. Ciò è utile per i cicli che richiedono più tempo a causa dell'inizializzazione.
Disattivazione/riattivazione del watchdog:
VAR hIecTask : RTS_IEC_HANDLE; END_VAR hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); //Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); //Watchdog enabled
Il watchdog è disattivato prima dell'inizializzazione con IecTaskDisableWatchDog
per il resto del ciclo e si riattiva automaticamente al ciclo successivo.
Il watchdog può essere riattivato dopo l'inizializzazione con IecTaskEnableWatchDog
. Il watchdog viene quindi riattivato già per il resto del ciclo (la finestra temporale del watchdog riparte dall'inizio).
Inizializzazioni di blocchi funzionali che avvengono all'interno di FB_Init
il metodo non è influenzato da questo. Ma c'era il limite di < 30 secondi a causa del timeout di comunicazione. Questo limite di tempo non esiste più dalla V3.5 SP18 perché i servizi online vengono eseguiti in modo asincrono
.
Suggerimento
Il normale watchdog di un task IEC viene attivato quando il tempo di esecuzione del task IEC supera il tempo di watchdog.
Il watchdog "Ciclo omesso" viene attivato quando il task non si avvia affatto. Questo è il caso in cui l'attività non esegue alcun ciclo entro il massimo di <Volta * Sensibilità> o <2 * Intervallo>. La causa potrebbe essere l'affollamento di altre attività o un errore nell'utilità di pianificazione, che non abilita più l'attività.
Chiamate al programma
POU (POU oggetto con tipo L'ordine in cui vengono chiamate le POU corrisponde all'ordine di chiamata configurato qui dall'alto verso il basso. | |
| Apre l'Input Assistant. Seleziona un |
| Rimuove la chiamata |
| Apre l'Input Assistant per la chiamata selezionata. Selezionane un altro |
| Sposta la posizione della chiamata verso l'alto o verso il basso nell'elenco. L'ordine delle chiamate cambia di conseguenza in fase di esecuzione. |
| Apre l'editor POU con la dichiarazione e l'implementazione del |